home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / embedded / ibm / sym_r3.arc / SIM.H < prev    next >
C/C++ Source or Header  |  1989-07-06  |  2KB  |  84 lines

  1. typedef int (*PFI)();    /* Pointer to Function Returning Integer */
  2.  
  3. /* Pick one of the following two: */
  4. #define MSC     /* Uncomment for IBM-PC, Microsoft C 5.0 */
  5.    /* MSC screen control uses microsoft's graphics library and DOS BIOS 6 */
  6. /* #define VT52      Uncomment for ATARI ST, Mark Williams C 3.0 */
  7.    /* ST screen control uses VT52 escape sequences.  The ST emulates a VT52 */
  8.  
  9. #define DIRECT 0
  10. #define ACCUM 1
  11. #define X_REGISTER 2
  12. #define AT_X_BYTE_OFFSET 3
  13. #define AT_X 4
  14. #define INH 5
  15. #define IMM 6
  16. #define EXT 7
  17. #define AT_X_WORD_OFFSET 8
  18. #define REL 9
  19. #define BTB 10
  20. /* Actually, table says INH for things that read/store X */
  21. /* The following is used by instr routines to call get_ea, etc */
  22. #define XREG 11
  23.  
  24. struct program_model {
  25.     int a;
  26.     int x;
  27.     int pc;
  28.     int sp;
  29.     int ccr;
  30. };
  31.  
  32. #define CC_C 1
  33. #define CC_Z 2
  34. #define CC_N 4
  35. #define CC_I 8
  36. #define CC_H 16
  37.  
  38. #ifndef INSTR_C
  39. extern struct program_model pgm_model;
  40. extern char rw[], opcode[], mne[];
  41. #endif
  42.  
  43. #ifndef SIMR3_C
  44. extern int display_enabled, log_enabled, promptline_full;
  45. extern int external_intr, timer_external_input;
  46. extern int disassemble;
  47. extern long int cycle_count;
  48. #endif
  49.  
  50. #define PORT_A_DATA 0
  51. #define PORT_B_DATA 1
  52. #define PORT_C_DATA 2
  53. #define PORT_D_DATA 3
  54. #define PORT_A_DDR 4
  55. #define PORT_B_DDR 5
  56. #define PORT_C_DDR 6
  57. #define TIMER_DATA 8
  58. #define TIMER_CONTROL 9
  59. #define MISC_REGISTER 10
  60. #define EPROM_PGM_CTRL 11
  61. #define AD_CTRL_REG 14
  62. #define AD_REG 15
  63. #define RAM_START 0x10
  64. #define RAM_END 0x7F
  65. #define PROM_START 0x80
  66. #define PROM_END 0xF37
  67. #define MASK_OPT_REG 0xF38
  68. #define NOT_USED_START 0xF39
  69. #define NOT_USED_END 0xF7F
  70. #define BOOTSTRAP_ROM_START 0xF80
  71. #define BOOTSTRAP_ROM_END 0xFF7
  72. #define VECTORS_START 0xFF8
  73. #define VECTORS_END 0xFFF
  74.    /* timer int, ext int, swi, reset */
  75.  
  76. /* display: lines 1-4 title and menu; line 5 separator; */
  77. #define PROMPTLINE 6
  78. /* lines 7 - 24 simulator trace */
  79.  
  80. /* Defines for registers understood by get_ea, sim_read, sim_write */
  81. #define RW_A -1
  82. #define RW_X -2
  83. #define RW_SP -3
  84.